#ifndef EPOLL_CALLBACK_INTERFACE_H
#define EPOLL_CALLBACK_INTERFACE_H
namespace Net{

    class EpollServer;
    class EpollEvent;

    class EpollCallBackInterface
    {
        protected:
            EpollCallBackInterface();

        public:
            virtual ~EpollCallBackInterface();

        public:
            virtual void OnRegisteration(EpollServer *eps, int fd, int event_mask) = 0;
            virtual void OnModification(int fd, int event_mask) = 0;
            virtual void OnEvent(int fd, EpollEvent* event)= 0;
            virtual void OnUnregistration(int fd, bool replaced) = 0;
            virtual void OnShutdown(EpollServer *eps, int fd) = 0;

    };

    inline EpollCallBackInterface::EpollCallBackInterface(){}
    inline EpollCallBackInterface::~EpollCallBackInterface(){}
}

#endif

